package com.zf.rabbitmq.consumer.listener.json;

import com.rabbitmq.client.Channel;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

/**
 * 消费数据
 */
@Component
public class JsonConsumer {

    /**
     * 可以用 Message 接收，也可以用 String 接收，如果是知道数据是JSON则可以用具体对象来接收对象
     * - 如果用 Message 接收，则获取的是 消息体（byte[]body） 和 消息的详细信息
     * - 如果用 String 接收消息，获取的其实是 Message 中 byte[]body 字节数组中的数据转换成的 String
     * - 可以两个都写，也可以只写一个，且没有顺序要求。
     */
    @RabbitListener(queues = {"test_json_queue"})
    public void consumeJsonMsg(String msg, Message message, Channel channel) {
        System.out.printf("test_json_queue 中的消息: %s\n", msg);
    }
}
